package br.cs.correspodente.beans;

import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedNativeQueries;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;

@Entity
@NamedQueries({
	@NamedQuery(name="getBynome",query="SELECT V FROM Vendedor V WHERE V.nome LIKE  :nome "),
	@NamedQuery(name="getByCpf",query="SELECT V FROM Vendedor V WHERE V.cpf LIKE  :cpf "),
	@NamedQuery(name="getByCnpj",query="SELECT V FROM Vendedor V WHERE V.cnpj LIKE  :cnpj ")
})
public class Vendedor extends Pessoa{
	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	private Integer id;
	private String cnpj;
	private String nome_Empreendimento;
	
	@OneToMany(mappedBy="vendedor",cascade=CascadeType.ALL)
	private List<Imovel> imoveis;
	
	@OneToMany(mappedBy="vendedor",cascade= CascadeType.ALL)
	private List<Telefone_Vendedor> telefones;
	
	
	public Vendedor() {
		// TODO Auto-generated constructor stub
	}
	
	public Vendedor(String nome, String cpf, Integer id, String cnpj,
			String nome_Empreendimento, List<Imovel> imoveis,
			List<Telefone_Vendedor> telefones) {
		super(nome, cpf);
		this.id = id;
		this.cnpj = cnpj;
		this.nome_Empreendimento = nome_Empreendimento;
		this.imoveis = imoveis;
		this.telefones = telefones;
	}	

	public Vendedor(Integer id,String nome, String cpf,
			String cnpj, String nome_Empreendimento) {
		super(nome, cpf);
		this.id = id;
		this.cnpj = cnpj;
		this.nome_Empreendimento = nome_Empreendimento;
	}

	public Vendedor(String nome, String cpf, Integer id, String cnpj,
			String nome_Empreendimento, List<Imovel> imoveis) {
		super(nome, cpf);
		this.id = id;
		this.cnpj = cnpj;
		this.nome_Empreendimento = nome_Empreendimento;
		this.imoveis = imoveis;
	}
	
	/*----------------------------------------------------------------------
	 * 
	 * Gets And Sets
	 -----------------------------------------------------------------------*/
	

	public String getCnpj() {
		return cnpj;
	}


	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public void setCnpj(String cnpj) {
		this.cnpj = cnpj;
	}


	public String getNome_Empreendimento() {
		return nome_Empreendimento;
	}
	public void setNome_Empreendimento(String nome_Empreendimento) {
		this.nome_Empreendimento = nome_Empreendimento;
	}
	public List<Imovel> getImoveis() {
		return imoveis;
	}

	public void setImoveis(List<Imovel> imoveis) {
		this.imoveis = imoveis;
	}

	public List<Telefone_Vendedor> getTelefones() {
		return telefones;
	}

	public void setTelefones(List<Telefone_Vendedor> telefones) {
		this.telefones = telefones;
	}
	
	
	
	
}
